草庐IT

Swift 递归枚举

全部标签

C# ReaderWriterLockSlim 避免递归的最佳实践

我有一节课使用ReaderWriterLockSlim具有一个读取方法和一个写入方法,该方法使用读取方法检索要修改的元素。一个简单的例子是:classFooLocker{ReaderWriterLockSlimlocker=newReaderWriterLockSlim();ListfooList=newList();publicvoidChangeFoo(intindex,stringbar){locker.EnterWriteLock();try{Foofoo=GetFoo(index);foo.Bar=bar;}finally{locker.ExitWriteLock();}}p

c# - 在带有空格的 ComboBox 中显示枚举

我有一个枚举,例如:enumMyEnum{My_Value_1,My_Value_2}与:comboBox1.DataSource=Enum.GetValues(typeof(MyEnum));但现在我的问题是:如何将“_”替换为“”,使其变为带空格而不是下划线的项目?而且数据绑定(bind)对象仍然作品 最佳答案 如果您有权访问Framework3.5,您可以执行以下操作:Enum.GetValues(typeof(MyEnum)).Cast().Select(e=>new{Value=e,Text=e.ToString().Re

c# - 枚举和减法运算符

有谁知道(也许:从什么时候开始)-=运算符在enum值上受支持?今天我正在愉快地编码,因为某种原因,我写了这个来从标志enum中排除一个值:flags-=FlagsEnum.Value1;在重新阅读和评估我的代码后,我很惊讶它编译后确实有效。将语句写成flags=flags-FlagsEnum.Value1但是不编译。到目前为止,我在文档和互联网上找不到任何内容。此外,不支持其他运算符(当然除了位运算符):+=(包括标志)、*=(Pascal中的交集)工作。这是C#编译器内置的语法糖吗?如果是这样,他们选择不包括其他运营商的原因是什么?一个简单的代码示例:usingSystem;usi

c# - 我如何在 MVC3 中的 Razor 页面上使用枚举?

我声明了一个枚举:publicenumHeightTypes{Tall,Short}现在我想像这样在我的Razor页面上使用它:@if(Model.Meta.Height==HeightTypes.Tall)但是有一个问题,因为我得到一个错误。有什么方法可以告诉razor页面关于我的枚举的信息吗? 最佳答案 您的枚举声明有误(删除结尾的;):publicenumHeightTypes{Short=0,Tall=1}那么下面的测试应该有效:@if(Model.Meta.Height==HeightTypes.Tall){}您只需确保您

c# - 枚举应该放在单独的文件中还是放在另一个类中?

我目前有一个包含以下枚举的类文件:usingSystem;namespaceHelper{publicenumProcessType{Word=0,Adobe=1,}}或者我应该在使用它的类中包含枚举吗?我注意到Microsoft为DockStyle创建了一个新的类文件:usingSystem;usingSystem.ComponentModel;usingSystem.Drawing.Design;namespaceSystem.Windows.Forms{publicenumDockStyle{None=0,Top=1,Bottom=2,Left=3,Right=4,.Fill=5

c# - 检查枚举是否有等于字符串的字段

我有一个枚举publicenumFileExtentions{mp3,mpeg}我有一个FileInfo,我想检查它的扩展名是否在前一个枚举中。我希望我能做一个FileExtensions.Any(e=>e.ToString().Equals(file.Extension));但是那太棒了。有什么想法吗? 最佳答案 Any…Equals背后的原因是什么?您是否忽略了Contains?boolresult=Enum.GetNames(typeof(FileExtensions)).Contains("mp3");

c# - 提高使用 .NET 枚举文件和文件夹的性能

我有一个包含数千个文件夹的基本目录。在这些文件夹中,可以有1到20个子文件夹,其中包含1到10个文件。我想删除所有超过60天的文件。我使用下面的代码来获取我必须删除的文件列表:DirectoryInfodirInfo=newDirectoryInfo(myBaseDirectory);FileInfo[]oldFiles=dirInfo.GetFiles("*.*",SearchOption.AllDirectories).Where(t=>t.CreationTime但是我让它运行了大约30分钟,但它仍然没有完成。我很好奇是否有人能看到我有可能提高上述行的性能,或者是否有不同的方法我

c# - 是否建议为所有 C# 枚举添加后缀 "Enum"以避免命名冲突?

Thisstackoverflowquestion有一个有趣的讨论关于如何避免给枚举和属性赋予相同的名称,这样你就没有这样的代码:publicSaveStatusSaveStatus{get;set;}似乎已接受的答案建议对枚举使用“状态”,对属性使用“状态”:publicSaveStatusSaveState{get;set;}但我认为这很难阅读并且不能立即清楚什么是什么。由于这个枚举命名问题是一个老生常谈的问题,我正在考虑简单地总是用“Enum”作为我的枚举的后缀,所以我会这样:publicSaveStatusEnumSaveStatus{get;set;}SaveStatus=S

c# - 枚举可以包含字符串吗?

这个问题在这里已经有了答案:AssociatingenumswithstringsinC#(38个答案)关闭9年前。如何声明一个包含值字符串的enum?privateenumbreakout{page="String1",column="String2",pagenames="String3",row="String4"}

c# - C#递归删除文件和目录

如何在C#中递归删除给定的目录?包含文件的目录。应该System.IO.Directory.Delete使用第二个参数true可以解决问题吗?编辑:所以,我实际上确实回答了我自己的问题,尽管这里的答案更清楚一些。我首先问这个问题的原因是调用Delete的代码(第二个参数设置为true)没有做它应该做的事情正在做。事实证明,这是因为在目录层次结构的下方某处有一个文件设置了RO属性,并且Polish版本的WindowsXP为此发出了一条非常奇怪的消息。 最佳答案 如果子目录也包含文件,唯一对我有用的解决方案是使用递归函数:publics